1. Field of the Invention
The present invention generally relates to transmission of data in an internet protocol (IP) network and, more particularly, to techniques for loss and recovery of data transmitted in a voice over internet protocol (VoIP) network.
2. Discussion of Background
Voice over Internet Protocol (VoIP) refers to the transportation of voice traffic over IP networks rather than the Public Switched Telephone Network (PSTN). It is a relatively new technology whereby audio is sent, for example between two or more computer users in real time via an IP network, so the users can converse. Analog voice is sampled, digitized and compressed and then put in packets that are sent over an IP network.
One way of using this technology is to connect a VoIP gateway to the PSTN network. A call from a conventional phone is made to the VoIP gateway and routed over the IP network to its destination VoIP gateway where it is again passed on to PSTN. The benefit from this is that the expensive long distance part of the call can be carried out at a lower cost.
In VoIP, voice data is compressed into frames. Each frame represents the voice data for a small unit of time, typically 30 milliseconds. These frames are then formed into packets and sent over IP. It is the responsibility of the underlying protocols to insure the packets received at the other end are correct and received at all.
The normal way of dealing with lost or incorrect packets over IP is to retransmit packets. This technique is used in TCP (Transport Control Protocol) running over IP. The Internet Protocol and the TCP was not designed for real time data transmission such as VoIP, where each packet is time critical. A retransmitted voice packet will arrive too late too be useful.
One method to deal with lost packets in VoIP is to introduce a buffer where a certain amount of packets are stored in order to make sure that packets can be received in a correct order even with some packets being retransmitted. This method can be used in a one-way application such as streaming audio where a short delay is acceptable. In a two-way communication such as VoIP this type of solution would introduce an unacceptable latency.
Another method is to transmit all frames twice or even three times to make sure that at least one of them arrives at the receiving end. This solution has the drawback of using a lot of extra bandwidth.